﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using SGC_CarteraClientes.Persistencia;
using SGC_CarteraClientes.Models;

namespace SGC_CarteraClientes.Persistencia
{
    public class CampaniaDAO
    {
        public void procesarprospectos(string tipo)
        {
            string cod_nuevo;
            FSLogger mylogger = new FSLogger("D:/logfile.txt");
            SqlConnection con = new SqlConnection(ConexionUtil.Cadena);
            con.Open();
            SqlCommand com = new SqlCommand("dbo.sp_procesa_prospectos @tipoCodigo", con);
            com.Parameters.Add(new SqlParameter("@tipoCodigo", tipo));
            try
            {
                //cod_nuevo = (string)com.ExecuteScalar();
                //return cod_nuevo;
                com.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                mylogger.EscribirLog(ex);
                // manejo de la excepción
            }
        }

        public string GeneraCodigo(string tipo)
        {
            string cod_nuevo;
            FSLogger mylogger = new FSLogger("D:/logfile.txt");
            SqlConnection con = new SqlConnection(ConexionUtil.Cadena);
            con.Open();
            SqlCommand com = new SqlCommand("select dbo.sf_genera_codigo(@tipoCodigo)", con);
            com.Parameters.Add(new SqlParameter("@tipoCodigo", tipo));
            try
            {
                cod_nuevo = (string)com.ExecuteScalar();
                return cod_nuevo;
            }
            catch (Exception ex)
            {
                mylogger.EscribirLog(ex);
                return "xxx";
                // manejo de la excepción
            }


        }
        public string valida_comi_desc(string s_parametro, decimal d_comision, decimal d_dcto)
        {
            string cod_return;

            FSLogger mylogger = new FSLogger("D:/logfile.txt");
            SqlConnection con = new SqlConnection(ConexionUtil.Cadena);
            con.Open();
            SqlCommand com = new SqlCommand("select dbo.sf_valida_comi_desc(@p_cod_param, @p_comi, @p_desc)", con);
            com.Parameters.Add(new SqlParameter("@p_cod_param", s_parametro));
            com.Parameters.Add(new SqlParameter("@p_comi", d_comision));
            com.Parameters.Add(new SqlParameter("@p_desc", d_dcto));
            try
            {
                cod_return = (string)com.ExecuteScalar();
                return cod_return;
            }
            catch (Exception ex)
            {
                mylogger.EscribirLog(ex);
                return "x";
                // manejo de la excepción
            }

        }

        public List<CA_PRODUCTO> ListarProductos()
        { 
            FSLogger mylogger = new FSLogger("D:/logfile.txt");
            SqlConnection con = new SqlConnection(ConexionUtil.Cadena);


            string str_sql = "Select Prod_Id, Prod_Nomb from dbo.CA_PRODUCTO";
            SqlCommand sql = new SqlCommand(str_sql, con);
            con.Open();
            try
            {
                SqlDataReader reader = sql.ExecuteReader();
                List<CA_PRODUCTO> productos = new List<CA_PRODUCTO>();
                while (reader.Read())
                {
                    CA_PRODUCTO prod = new CA_PRODUCTO();
                    prod.PROD_ID = reader.GetString(0);
                    prod.PROD_NOMB = reader.GetString(1);
                    productos.Add(prod);
                }
                return productos;
            }
            catch (Exception ex)
            {
                mylogger.EscribirLog(ex);
                List<CA_PRODUCTO> productos = new List<CA_PRODUCTO>();
                return productos;
            }
        }


    }
}